package com.qfedu.hello.spring.life;

import com.qfedu.hello.spring.service.UserService;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

/**
 * @auther asus
 * @date 2022/4/26 10:35
 * 自定义后置处理器
 * 可以在bean的初始化前后做一些其他工作
 */
public class MyPostProcessor implements BeanPostProcessor {
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        // 默认是所有的bean在初始化之前都可以执行这里的代码
        System.out.println("在bean 初始化之前执行");
        return bean;
    }

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        // 默认是所有的bean在初始化之后都可以执行这里的代码
        if (bean instanceof UserService) {
            // 加这个判断，可以只让UserService类型的bean初始化之后，执行这里代码
            System.out.println("在bean初始化之后执行");
        }
        return bean;
    }
}
